package com.leslie.ai.service.qrCode.impl;

import com.leslie.ai.domain.qrCode.QRCode;
import com.leslie.ai.service.qrCode.QRCodeService;
import com.leslie.common.utils.qrCode.QRCodeUtils;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.io.IOException;

/**
 * ServiceImpl
 *
 * @author Leslie Lee
 * @TIME 1956/09/12
 * @Version 2003/04/01
 */
@Slf4j
@Service
public class QRCodeServiceImpl implements QRCodeService {

    @Override
    public void generateQRCode(HttpServletResponse response, QRCode o) throws IOException {
        if (o.getQrStyle().equalsIgnoreCase("default")) {// 样式
            log.info("☆★☆★♡♠♡★☆★☆【生成默认样式二维码】☆★☆★♡♠♡★☆★☆");
            if (o.getGenerateWay().equalsIgnoreCase("filePath")) {// 生成方式
                QRCodeUtils.generateQRCode(o.getContent(), o.getFilePath());
                log.info("☆★☆★♡♠♡★☆★☆【默认样式二维码位置：{}】☆★☆★♡♠♡★☆★☆", o.getFilePath());
            } else if (o.getGenerateWay().equalsIgnoreCase("browserDownload")) {
                QRCodeUtils.generateQRCode(response, o.getContent(), o.getFileName(), false);
                log.info("☆★☆★♡♠♡★☆★☆【默认样式二维码浏览器下载】☆★☆★♡♠♡★☆★☆");
            }
        } else if (o.getQrStyle().equalsIgnoreCase("cyan")) {
            log.info("☆★☆★♡♠♡★☆★☆【生成青色二维码】☆★☆★♡♠♡★☆★☆");
            if (o.getGenerateWay().equalsIgnoreCase("filePath")) {// 生成方式
                QRCodeUtils.generateQRCodeColor(o.getContent(), o.getFilePath(), true);
                log.info("☆★☆★♡♠♡★☆★☆【青色二维码位置：{}】☆★☆★♡♠♡★☆★☆", o.getFilePath());
            } else if (o.getGenerateWay().equalsIgnoreCase("browserDownload")) {
                QRCodeUtils.generateQRCodeColor(response, o.getContent(), o.getFileName(), false);
                log.info("☆★☆★♡♠♡★☆★☆【青色二维码浏览器下载】☆★☆★♡♠♡★☆★☆");
            }
        } else if (o.getQrStyle().equalsIgnoreCase("customize")) {
            if (o.getGenerateWay().equalsIgnoreCase("filePath")) {// 生成方式
                QRCodeUtils.generateQRCode(o.getContent(), o.getWidth(), o.getHeight(), o.getMargin(), o.getForeColor(), o.getBackColor(), o.getImgPath(), o.getErrorCorrectionLevel(), o.getFilePath());
            } else if (o.getGenerateWay().equalsIgnoreCase("browserDownload")) {
                QRCodeUtils.generateQRCode(response, o.getContent(), o.getWidth(), o.getHeight(), o.getMargin(), o.getForeColor(), o.getBackColor(), o.getImgPath(), o.getErrorCorrectionLevel(), o.getFileName(), false);
            }
        }
    }

}